package com.xian.d8_map_test;

import java.util.HashMap;
import java.util.Map;
import java.util.Random;

/**
 * 需求:统计投票人数
 * 某个班级80名学生，现在需要组成秋游活动，班长提供了四个景点依次是(A、B、C、D),
 * 每个学生只能选择一个景点，请统计出最终哪个景点想去的人数最多。
 * <p>
 * 分析
 * 将80个学生选择的数据拿到程序中去。
 * 定义Map集合用于存储最终统计的结果。
 * 遍历80个学生选择的数据，看Map集合中是否存在，不存在存入“数据=1“，存在则其对应值+1,
 */
public class MapTest1 {
    public static void main(String[] args) {
        //1、把80个学生选择的数据拿进来。
        String[] selects = {"A", "B", "C", "D"};
        StringBuilder sb = new StringBuilder();
        Random r = new Random();
        for (int i = 0; i < 80; i++) {
            sb.append(selects[r.nextInt(selects.length)]);
        }
        System.out.println(sb);

        //2、定义一个Nap集合记录最终统计的结果: A=30 B=20 C=20 D=10  键是景点值是选择的数量
        Map<Character, Integer> infos = new HashMap<>();

        //3、遍历80个学生选择的数据
        for (int i = 0; i < sb.length(); i++) {
            //4、提取当前选择景点字符
            char ch = sb.charAt(i);
            //5、判断新Map集合中是否存在这个键
            if (infos.containsKey(ch)) {
                //如果有，其值+1
                infos.put(ch, infos.get(ch) + 1);
            } else {
                //值设为1
                infos.put(ch, 1);
            }
        }

        //4、输出集合
        System.out.println(infos);
    }
}
